Just wanted to add: I don't think that, for testcases that trip both the "Two layers that scroll together" assert and the spatial_tree.rs assert in the bug title, that fixing the former will necessarily fix the latter. To explain why, here's a bit of background: * The "Two layers that scroll together" assertion is asserting properties of the WRScrollData (technically, of the APZ hit-testing tree whose structure corresponds directly to the WRScrollData). * The spatial_tree.rs assertion is asserting properties of the WebRender display list (WRDL). * Both the WRScrollData and the WRDL and built from the Gecko DL. The approach we've been taking recently to fix "Two layers" assertions, is to harden the WRScrollData building step against issues in the Gecko DL (e.g. in bug 1753779). The underlying issues in the Gecko DL, and any downstream consequences on the WRDL, remain. In principle it would be better to fix the issues at the Gecko DL level, but I don't really have the expertise to do that (I tried in e.g. bug 1729581, with questionable results, e.g. regressing other assertions), and my conversations with people who do (like Markus) have suggested that the long-term plan in this area will be to remove the Gecko DL and build the WRDL (and I guess also the WRScrollData?) directly from the frame tree. Anyways, my point here is, the question of whether the spatial_tree.rs assert provides value should be evaluated independently.
Bug 1743948 Comment 36 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Just wanted to add: I don't think that, for testcases that trip both the "Two layers that scroll together" assert and the spatial_tree.rs assert in the bug title, that fixing the former will necessarily fix the latter. To explain why, here's a bit of background: * The "Two layers that scroll together" assertion is asserting properties of the WRScrollData (technically, of the APZ hit-testing tree whose structure corresponds directly to the WRScrollData). * The spatial_tree.rs assertion is asserting properties of the WebRender display list (WRDL). * Both the WRScrollData and the WRDL and built from the Gecko DL. The approach we've been taking recently to fix "Two layers" assertions, is to harden the WRScrollData building step against issues in the Gecko DL (e.g. in bug 1753779). The underlying issues in the Gecko DL, and any downstream consequences on the WRDL, remain. In principle it would be better to fix the issues at the Gecko DL level, but I don't really have the expertise to do that (I tried in e.g. bug 1729581, with questionable results, e.g. regressing other assertions), and my conversations with people who do (like Markus) have suggested that the long-term plan in this area will be to remove the Gecko DL and build the WRDL (and I guess also the WRScrollData?) directly from the frame tree. Anyways, my point here is, the question of whether the spatial_tree.rs assert provides value should be evaluated independently of the "Two layers" assert.